package com.easylinkin.linkappapi.deviceattribute.mapper;

import com.easylinkin.linkappapi.deviceattribute.entity.DeviceAttributeTenantConfig;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import java.util.List;
import java.util.Set;
import org.apache.ibatis.annotations.Param;

/**
 * <p>
 * 设备属性租户个性化配置 Mapper 接口
 * </p>
 *
 * @author TongJie
 * @since 2020-10-28
 */
public interface DeviceAttributeTenantConfigMapper extends BaseMapper<DeviceAttributeTenantConfig> {

    List<DeviceAttributeTenantConfig> getDeviceAttributeTenantConfigs(@Param("deviceAttributeTenantConfig") DeviceAttributeTenantConfig deviceAttributeTenantConfig);

    /**
     * 对新增的属性，查询旧版的属性是否有个性化配置 如果有修改，用新增的属性id 替换
     *
     * @param addDeviceAttrIds 新增的属性id的集合
     */
    List<DeviceAttributeTenantConfig> getLatestToBeUpdatedPersonalizedConfig(@Param("addDeviceAttrIds") Set<String> addDeviceAttrIds);

    /**
     * 删除查找 在 linkapp_device_service_tenant_config 中 对应属性 identifer有重复的数据，保留创建时间最新的一条
     */
    void deleteAttrIdentifierRepeatData();


    void deleteAttrIdentifierRepeatData2();

    /**
     * 如果 linkthings有新增的属性 需要插入到个性化配置中，默认设置为不可见
     */
    List<DeviceAttributeTenantConfig> getNeedAddConfigAfterInheritPersonalizedConfig();
}
